home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAULTP3.ZIP
/
PWAPRGMS.A02
/
PWA95
/
PWAECJ15.ZIP
/
JOIN.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-04-09
|
5KB
|
427 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING011
String STRING012
Word WORD001
Int INT001
Int INT002
Int INT003
Int INT005
Declare Function FUNCTION001(Int INT004, Word WORD002) Integer
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005(Int INT006, String STRING010, Int INT007)
Declare Procedure PROC006()
Declare Procedure PROC007()
;------------------------------------------------------------------------------
PROC001()
PROC003()
PROC007()
End
;------------------------------------------------------------------------------
Procedure PROC007()
LastIn INTEGER004
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
String STRING006
String STRING007
String STRING008
Int INT001
Int INT002
Int INT003
Boolean BOOLEAN001
Boolean BOOLEAN002
Print STRING004
INT001 = 1
BOOLEAN002 = 0
:LABEL001
If (BOOLEAN002) Goto LABEL005
STRING007 = ScrText(1, INT001 + INTEGER002, 79, 1)
AnsiPos 1, INT001 + INTEGER002
Print STRING005 + ScrText(1, INT001 + INTEGER002, 79, 0) + "@X01"
AnsiPos 1, INT001 + INTEGER002
STRING006 = ""
:LABEL002
If (BOOLEAN002) Goto LABEL003
STRING006 = Upper(Inkey())
If (((((((((((((((STRING006 == "9") || (STRING006 == "3")) || (STRING006 == "S")) || (STRING006 == "X")) || (STRING006 == "8")) || (STRING006 == "2")) || (STRING006 == "A")) || (STRING006 == "Z")) || (STRING006 == "Q")) || (STRING006 == "M")) || (STRING006 == Chr(13))) || (STRING006 == "UP")) || (STRING006 == "DOWN")) || (STRING006 == "PGUP")) || (STRING006 == "PGDN")) Then
BOOLEAN002 = 1
Endif
Goto LABEL002
:LABEL003
BOOLEAN002 = 0
Select Case (STRING006)
Case "A", "UP", "8"
AnsiPos 1, INT001 + INTEGER002
Print STRING007
INT001 = INT001 - 1
If (INT001 == 0) INT001 = INTEGER005
Case "Z", "DOWN", "2"
AnsiPos 1, INT001 + INTEGER002
Print STRING007
INT001 = INT001 + 1
If (INT001 == INTEGER005 + 1) Then
If (INTEGER005 == INTEGER003) BOOLEAN002 = 1
INT001 = 1
Endif
Case "PGDN", "3", "X"
BOOLEAN002 = 1
AnsiPos 1, INTEGER005 + INTEGER002 + 1
Case "PGUP", "9", "S"
INT002 = S2I(Left(ScrText(1, 1 + INTEGER002, 79, 0), 4), 10) - 1
INTEGER005 = 0
While ((INT002 > -1) && (INTEGER005 < INTEGER003)) Do
FSeek 1, WORD001 * INT002 + 2, 0
FRead 1, STRING008, 14
If (Strip(STRING008, " ") <> "") Then
FRead 1, BOOLEAN001, 1
If (BOOLEAN001 == 1) Then
FSeek 1, 5, 1
FRead 1, INT003, 2
If (U_Sec >= INT003) Then
INTEGER005 = INTEGER005 + 1
Endif
Endif
Endif
INT002 = INT002 - 1
EndWhile
INTEGER001 = INT002
BOOLEAN002 = 1
Case "M"
PROC007()
AnsiPos 1, U_PageLen
Stop
Case "Q", "ESCAPE"
PROC007()
AnsiPos 1, U_PageLen
KbdStuff Chr(13)
End
Case Chr(13)
If (INT001 < INTEGER005 + 1) Then
KbdStuff Left(ScrText(1, INT001 + INTEGER002, 79, 0), 4) + Chr(13)
AnsiPos 1, U_PageLen
Stop
Goto LABEL004
Endif
BOOLEAN002 = 1
End Select
:LABEL004
Goto LABEL001
:LABEL005
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
GetUser
INTEGER005 = 0
FOpen 1, STRING001, 0, 0
FOpen 2, STRING002, 0, 0
FRead 1, WORD001, 2
PROC004()
INTEGER002 = GetY() - 1
INTEGER001 = 0
While (INTEGER001 <= HiConfNum()) Do
INTEGER005 = INTEGER005 + FUNCTION001(INTEGER001, WORD001)
If ((INTEGER005 == INTEGER003) || (INTEGER001 == HiConfNum())) Then
PROC006()
PROC002()
INTEGER005 = 0
PROC004()
Endif
INTEGER001 = INTEGER001 + 1
EndWhile
FClose 1
FClose 2
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(Int INT004, Word WORD002) Integer
Boolean BOOLEAN003
String STRING009
Int INT005
Int INT006
FSeek 1, WORD002 * INTEGER001 + 2, 0
FRead 1, STRING009, 14
If (Strip(STRING009, " ") <> "") Then
FRead 1, BOOLEAN003, 1
If (BOOLEAN003 == 1) Then
FSeek 1, 5, 1
FRead 1, INT005, 2
If (U_Sec >= INT005) Then
PROC005(INT004, STRING009, 0)
FUNCTION001 = 1
Else
FSeek 1, WORD002 - 22, 1
FUNCTION001 = 0
Endif
ElseIf (ConfReg(INT004)) Then
PROC005(INT004, STRING009, 7)
FUNCTION001 = 1
Else
FSeek 1, WORD002 - 14 - 1, 1
FUNCTION001 = 0
Endif
Else
FSeek 1, WORD002 - 14, 1
FUNCTION001 = 0
Endif
EndFunc
;------------------------------------------------------------------------------
Procedure PROC005(Int INT006, String STRING010, Int INT007)
String STRING011
String STRING012
LastIn INT006
STRING011 = STRING003
STRING011 = ReplaceStr(STRING011, "%N%", String(INT006))
FSeek 2, INT006 * 256 + 208, 0
FRead 2, STRING012, 48
STRING012 = STRING010 + STRING012
STRING011 = ReplaceStr(STRING011, "%C%", String(STRING012))
FSeek 1, INT007 + 5, 1
FRead 1, STRING012, 32
If (STRING012 == "") Then
STRING011 = ReplaceStr(STRING011, "%M%", "No")
Else
STRING011 = ReplaceStr(STRING011, "%M%", "Yes")
Endif
FSeek 1, 237, 1
FRead 1, STRING012, 33
If (STRING012 == "") Then
STRING011 = ReplaceStr(STRING011, "%D%", "No")
Else
STRING011 = ReplaceStr(STRING011, "%D%", "Yes")
Endif
FSeek 1, 29, 1
FRead 1, STRING012, 33
If (STRING012 == "") Then
STRING011 = ReplaceStr(STRING011, "%B%", "No")
Else
STRING011 = ReplaceStr(STRING011, "%B%", "Yes")
Endif
FSeek 1, 29, 1
FRead 1, STRING012, 33
If (STRING012 == "") Then
STRING011 = ReplaceStr(STRING011, "%S%", "No")
Else
STRING011 = ReplaceStr(STRING011, "%S%", "Yes")
Endif
FSeek 1, 62, 1
FRead 1, STRING012, 33
If (STRING012 == "") Then
STRING011 = ReplaceStr(STRING011, "%F%", "No")
Else
STRING011 = ReplaceStr(STRING011, "%F%", "Yes")
Endif
If (InStr(STRING011, "%HM%")) Then
STRING011 = ReplaceStr(STRING011, "%HM%", HiMsgNum())
Endif
If (InStr(STRING011, "%LR%")) Then
STRING011 = ReplaceStr(STRING011, "%LR%", U_Lmr(INT006))
Endif
LastIn INTEGER004
PrintLn STRING011
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
If (Exist(PPEPath() + "JOIN.BOT")) Then
DispFile PPEPath() + "JOIN.BOT", 0
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
If (Exist(PPEPath() + "JOIN.TOP")) Then
DispStr "%" + PPEPath() + "JOIN.TOP"
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
If (Exist(PPEPath() + "JOIN.CFG")) Then
STRING001 = ReadLine(PCBDat(), 31) + ".@@@"
If (Exist(STRING001)) Goto LABEL006
PrintLn STRING001 + " does not exist. Bad path in PCBOARD.DAT"
End
:LABEL006
STRING002 = ReadLine(PCBDat(), 31) + ".ADD"
If (Exist(STRING002)) Goto LABEL007
PrintLn STRING002 + " does not exist. Bad path in PCBOARD.DAT"
End
:LABEL007
Else
PrintLn PPEPath() + "JOIN.CFG does not exist! Exiting."
End
Endif
INTEGER003 = S2I(ReadLine(PPEPath() + "JOIN.CFG", 1), 10)
STRING003 = ReadLine(PPEPath() + "JOIN.CFG", 2)
STRING004 = ReadLine(PPEPath() + "JOIN.CFG", 3)
STRING005 = ReadLine(PPEPath() + "JOIN.CFG", 4)
FClose -1
INTEGER004 = CurConf()
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 5 End
; 56 Goto
; 54 Let
; 4 Print
; 4 PrintLn
; 36 If
; 1 DispFile
; 2 FOpen
; 3 FClose
; 1 GetUser
; 2 Stop
; 2 KbdStuff
; 1 DispStr
; 8 AnsiPos
; 13 FSeek
; 13 FRead
; 3 LastIn
; 7 EndProc
; 1 EndFunc
;
;
; ■ Functions used :
;
; 2 -
; 3 *
; 39 +
; 8 -
; 43 ==
; 2 <>
; 2 <
; 1 <=
; 1 >
; 2 >=
; 34 !
; 1 &&
; 24 ||
; 1 Upper()
; 2 Left()
; 4 Chr()
; 2 InStr()
; 2 Strip()
; 1 Inkey()
; 2 String()
; 1 CurConf()
; 2 PCBDat()
; 10 PPEPath()
; 6 ReadLine()
; 5 Exist()
; 2 S2I()
; 1 GetY()
; 4 ScrText()
; 14 ReplaceStr()
; 1 ConfReg()
; 1 U_Lmr()
; 1 HiMsgNum()
; 2 HiConfNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 2 While/EndWhile
; 21 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------